This invention relates generally to improvements in digital versatile disc systems and, more particularly, to an improved caching system for digital versatile disc systems. More particularly still, the present invention relates to a caching system within a digital versatile disc system that manages multiple views of a given video image.
Digital versatile discs (DVDs) are information storage devices used for storing prerecorded audio information, movies and computer software. The storage and playback mechanism used in DVDs closely resembles the mechanism used in compact discs (CDs). DVD players and their software use the same laser technology as CD players. Briefly, both DVDs and CDs store information as a pattern of pits formed in a metallic substrate. The pit patterns form digital words and can be read by shining a laser beam on the disc surface and detecting the reflected beam. However, the information storage capacity of a typical DVD is much higher than a CD. Presently available DVDs have a variety of capacities which depend on the technology used to manufacture the discs. Single-layer technologies can be either single or double-sided with capacities of 4.7 gigabytes and 9.4 gigabytes, respectively. Dual layer technologies will soon be available which use single or double sided capacities that hold approximately 8.5 gigabytes per side. This high information storage capacity makes DVDs suitable for storing not only audio information, but also video information and large amounts of computer data as well.
DVD players have many CD player features, such as the ability to play selections in any order desired and the ability to read information from any point on the disc. However, DVDs can store information in several formats. For example, DVDs which are used to store video information (hereinafter called DVD-VIDEO discs) may use various known information compression algorithms, such as MPEG-2 for video compression/decompression. A DVD may also include high fidelity sound as well. In addition, a DVD may also store uncompressed linear pulse code modulated data streams which have sample rates between 48-90 kHz and are sampled at 16 or 24 bits. Still other DVD versions (hereinafter called DVD-ROM discs) can store digital data for computer use, and the data may also be compressed on these discs.
One feature in DVD systems and recorded media is the ability to view the same subject matter at different angles. The user has the option of viewing a primary viewing angle of a given subject matter and then selecting alternative angles of the same subject matter synchronized to the same procession of the primary view. The DVD disk stores these various angles while the DVD player reads the entire disk and temporarily stores each particular angle or the data encoded for playback of each angle within the caching system. Conventional DVD host-based caching systems operate by reading the data before it is requested by an application. When the application needs the data, it retrieves the data from the internal memory store or the cache, rather than from the optical device or the disk. Unfortunately, traditional caching techniques are not effective with DVD content since data for as many as nine different angles may be interleaved in a single DVD data stream. The interleaved data reduces the hit success ratio since up to 89% of the data in the cache may belong to one of the other angles that is not currently being viewed. Accordingly, the cache must be flushed more frequently since navigation requires constant jumps to different locations in order to show the appropriate angle.
Accordingly, a need exists for a method and system that allows caching of DVD content containing multiple viewing angles and that overcomes the problems of actually caching the additional views not being displayed.
According to the present invention, a caching method and system for use in a DVD player is disclosed that selectively caches only one of multiple viewing angles recorded on the DVD medium. This system allows optimization of the caching resources by only caching that portion of the DVD stream that relates to the currently selected angle being displayed or viewed during video playback. If another viewing angle is selected, the current contents of the cache for the previously-selected viewing angle are discarded and the system proceeds to cache the data for the newly selected viewing angle.
The caching apparatus is utilized in a digital versatile disk (DVD) system that has a DVD reader for generating a DVD data stream. The DVD data stream comprises data related to multiple viewing angles and the caching apparatus is able to selectively cache a viewing angle to be displayed from the multiple viewing angles. The caching apparatus includes a cache load thread for receiving the DVD stream and also for extracting a data portion of the DVD data stream associated with the selected viewing angle from the multiple viewing angles. Additionally, program logic is configured to store the selected data portion within the cache system. A user request thread is provided that allows downloading of the selected data stored within the cache, wherein the data portion stored is only that of the selected viewing angle.
The cache load thread is able to parse angle information from the data stream that is related to the selected viewing angle. This angle information includes a starting address as well as an ending sector to define the respective beginning and ending points of the viewing angle. Additionally, when a starting sector for a new viewing angle is received upon receipt of the end sector of the previously selected viewing angle, the new viewing angle begins play as the previous viewing angle ends.
The user request thread begins downloading data stored in the cache upon notification that the cache is fully loaded and ready for downloading. The user request thread also notifies the cache load thread when the data has been down loaded from the cache so that the cache load thread can begin reloading the cache with the next portion of data.
The method operates similarly to the apparatus in that it receives a DVD data stream from the DVD player and extracts a data portion of the DVD data stream associated with the selected viewing angle. The method then stores the selected data portion within the cache memory and downloads the selected data upon notice that the cache memory is full. The method uses angle information from the data stream, such as the beginning portion and the end sector, to control just how much caching is necessary and when to begin caching a new viewing angle. The method can be incorporated in program code for loading within a computer system in order to modify the computer system to operate in a manner consistent with the method and apparatus as previously described.